namespace ReceivableStatement {
  export interface SearchForm extends Base.Pagination {
    order?: string;
    sort?: string;
    beforePageNum: number;
    waybillNums: string;
    billNums: string;
    // customerNames: string[];
    bizIdList: string[];
    // chargeOffState: number | undefined;
    stateList: [];
    companyIdList: [];
    accountPeriodIdList: string[];
    createTime: string[];
    customerIdList: string[];
    createByList: string[];
  }
  export type ListRows = {
    id: string;
    billNum: string;
    state: number;
    price: number;
    chargeOffPrice: number;
    unChargeOffPrice: number;
    customerId: string;
    customerName: string;
    companyName: string;
    remark: string;
    bizId: number;
    bizName: string;
    accountPeriodId: number;
    accountName: string;
    billType: number;
    createName: string;
    createTime: string;
    updateName: string;
    updateTime: string;
    waybillNumber: number;
    costList: {
      id: number;
      bizReceivableBillId: number;
      waybillNum: string;
      depositTime: string;
      type: number;
      costName: string;
      clearingUnitPrice: number;
      unit: string;
      number: number;
      totalPrice: number;
      approvalState: number;
      isCreateBill: number;
      state: number;
      chargeOffPrice: number;
      unChargeOffPrice: number;
      approvalUserId: number;
      approvalUserName: string;
      approvalTime: string;
      channelId: number;
      channelName: string;
      currency: string;
    }[];
  };
  export type BillCostsParams = {
    pageNum: number;
    pageSize: number;
    beforePageNum: number;
    receivableBillIds: string[];
    waybillNums: string[];
    state: number;
    channelId: number;
    currency: string;
    type: number;
    costName: string;
    depositStartTime: string;
    depositEndTime: string;
    customerId: string;
  };
  export type BillCostrSearchForm = {
    pageNum: number;
    pageSize: number;
    beforePageNum: number;
    receivableBillIds: string[];
    waybillNums: string;
    state: number;
    channelId: string[];
    currency: string;
    type: number;
    costName: string;
    depositTime: string[];
    customerId: string[];
  };
  export type ChargeOffBillForm = {
    depositIds: string[];
    billCosts: { receivableBillId: string; costIds: string[] }[];
  };
  export type ShiftOrOutCostForm = {
    isShiftIN: number;
    costIds: string[];
    receivableBillId: string;
  };

  export interface AddFeeSearchForm extends Base.Pagination {
    beforePageNum: number;
    customerId: string;
    waybillNums: string;
    channelId: string[];
    costName: string;
  }
}
